package T3.BusquedaDeRaices;

public class NonValidIntervalException extends RuntimeException {

    public enum ErroType {

        NOT_AN_INTERVAL, INTERVAL_NOT_VALID
    };
    private FunctionInterface function;
    private float start, end;
    private ErroType error;

    NonValidIntervalException(FunctionInterface function, float start, float end, ErroType error) {
        this.function = function;
        this.start = start;
        this.end = end;
        this.error = error;
    }
}

public String toString() {
    switch (getError()) {
        case NOT_AN_INTERVAL:
            return "No es un intervalo valido; el inicio es posterior al final";
        case INTERVAL_NOT_VALID:
            return "No es un intervalo valido; la funcion￼principio vale " 
                    + getFunction().evalate(getStart()) + " y al final vale "
                    + getFunction().evalate(getEnd());
        default:
            return "Se produjo algún error";
    }
} 

public FunctionInterface getFunction() { 
    return function;
}

public float getStart(){
    return start;
}

public float getEnd(){
    return end;
}

public ErrorType getError(){
    return error;
}
